/*
 * $Author: kidbaw $
 * $Revision: 59 $
 * $Date: 2012-03-23 22:44:48 +0700 (Fri, 23 Mar 2012) $
 */

#import "SupportFunction.h"
#import "SBJSON.h"

// 0: disable, 1: enable
//TaiT: 06/17/13 enable for some API
#define _USING_HTTPS_PROTOCOL_ 1

// debug flag
#ifdef __RELEASE__PRODUCTION1__R3__
    #define VKDEBUG 0
#elif __DEBUG__PRODUCTION1__R3__
    #define VKDEBUG 1
#else
    #define VKDEBUG 1
#endif

#if VKDEBUG
#define VKLog(fmt, ...) VKLoga((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define VKLog(fmt, ...) VKLoga(fmt, ##__VA_ARGS__);
#endif

void VKLoga(NSString *format,...);

#define MILE_STANDARD_MET                                                   1600.0
#define KM_STANDARD_MET                                                   1000.0
#define TIMER_DISPLAY_TITLE_SCREEN                                          3.5
#define TIMER_MAIN_LOOP                                                     0.5
#define TIMER_COUNT_DOWN_UNIT                                               1
#define TIMER_SEC_PER_MINUTE                                                60
#define TIMER_CHANGING_VIEW                                                 0.3
#define TIMER_KARDS_VIEW_CONTROLLER_CHECKING_FOR_TIP                        5
#define TIMER_KARDS_VIEW_CONTROLLER_HIDDING_TIP                             5
#define TIMER_DECK_KARDS_VIEW_CONTROLLER_SHOWING_SIMI_DELAY_VIEW            3.5
#define TIMER_FOR_INIT_INTERFACE                                            0.5
#define TIMER_SPLASH_SCREEN_ANIMATION                                       (0.1 * 4)
#define LOADING_IMAGE_STEP 4

#define TIMER_MAIN_LOOP_BACKGROUND                                          10

#define DOUBLE_DISTANCE_GET_USER_LOCATION_METERS                            5.00
#define DOUBLE_DISTANCE_UNIT_MAX                                            10000.00
#define DOUBLE_DISTANCE_UNIT_MIN                                            100.00

#define FLOAT_DECELERATION_RATE_DEFAULT                                     0.4

#define MAXIMUM_SCALEABLE_RADIUS_METERS                                     5000000

#define EXCHANGE_PRICE_TO_POINT                                             (1000/22)


#define RGBCOLOR(r, g, b)             [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]
#define RGBACOLOR(r, g, b, a)         [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)/255.0f]

#define RELEASE_SAFE(p)                                 { if (p) { [(p) release]; (p) = nil;  } }

#define LOG_RETAIN_COUNT(a)                             VKLog(@"LOG_RETAIN_COUNT: %i", [a retainCount]);
#define LOG(a)                                          VKLog(@"LOG: %@", a);
#define FONT_APP_REGULAR                                @"Comfortaa"
#define FONT_APP_BOLD                                   @"Comfortaa-Bold"
#define FONT_APP_THIN                                   @"Comfortaa-Thin"
#define FONT_GOTHAM_BOOK                                @"Gotham Book"
#define FONT_GOTHAM_BOLD                                @"Gotham Bold"
#define FONT_GOTHAM_LIGHT                               @"Gotham Light"
#define FONT_GOTHAM_MEDIUM                              @"Gotham Medium"
#define FONT_BEBAS_NEUE                                 @"Bebas Neue"

#define LOAD_VIDEO_DATA                                 @"loadVideoData"

#define IS_IPAD                                         [SupportFunction deviceIsIPad]
// device run app: - IOS : 1 , ANDROID :2 (use for push notification feature)
#define OS_RUNNING                                      1
//#define ALERT(title, message)                           { UIAlertView *_alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:self cancelButtonTitle:STRING_ALERT_OK otherButtonTitles:nil];  [_alert show]; [_alert release]; }

#define STRING_NAME_DECK_KARDS_ME                       @"ME"
#define STRING_NAME_DECK_MY_DEAL                        @"My Deals"
#define STRING_NAME_DECK_KARDS_ALBUM                    @"ALBUM"
#define STRING_NAME_DECK_KARDS_SEED                     @"SEED"
#define STRING_NAME_DECK_KARDS_PROMOTED                 @"PROMOTED"
#define STRING_NAME_DECK_KARDS_TRENDING                 @"TRENDING"
//#define STRING_PREFIX_DECK                              @"deck"
//#define STRING_PREFIX_KARDS                             @"kards"
//#define STRING_PREFIX_DECK                              @""
//#define STRING_PREFIX_KARDS                             @""

//#define STRING_USER_DEFAULT_ACCESS_TOKEN                        @"access_token"
//#define STRING_USER_DEFAULT_USER_NAME                           @"user_default_user_name"
//#define STRING_USER_DEFAULT_PASS_WORD                           @"pass_word"
//#define STRING_USER_DEFAULT_USER_ID                             @"user_default_user_id"
//#define STRING_USER_DEFAULT_SESSION_ID                          @"session_id"
#define STRING_USER_DEFAULT_USER_LOGIN_REMEBER_ME               @"user_default_remember_me"
#define STRING_USER_DEFAULT_USER_DATA_MANAGER                   @"user_default_user_data_manager"
#define STRING_USER_DEFAULT_FACEBOOK_DATA_MANAGER				@"user_default_facebook_data_manager"
#define STRING_USER_DEFAULT_TWITTER_DATA_MANAGER				@"user_default_twitter_data_manager"
#define STRING_USER_DEFAULT_VERSION_ID                          [NSString stringWithFormat:@"user_default_version_id_%@", STRING_REQUEST_ROOT]
#define STRING_USER_DEFAULT_VERSION_DATE                        @"user_default_version_date"

#define STRING_USER_DEFAULT_ORIENTATION                         @"user_default_orientation"

#define STRING_POPUP_HIDDEN_KARD(dateString)                    [NSString stringWithFormat:@"This Kard was hidden by you on %@.  Would you like to unhide it?", dateString]

#define INT_DEFAULT_FIRST_PAGE                                              1
#define INT_DEFAULT_PAGE_SIZE                                               100
#define DEFAULT_MAX_CHARACTER                                               165
#define INT_KONNECT_PAGE_SIZE                                               INT_DEFAULT_PAGE_SIZE
#define INT_KONNECT_LOCALEZE_PAGE_SIZE                                      20

#define BUSINESS_SEARCH_DEFAULT_RADIUS                                      25

// Do not use these constant have prefix _. Use the other have same name below.
#define _HEIGHT_IPHONE                                                       480
#define _WIDTH_IPHONE                                                        320
#define _HEIGHT_IPHONE_5                                                     568
#define _WIDTH_IPHONE_5                                                      320
#define _HEIGHT_IPAD                                                         1024
#define _WIDTH_IPAD                                                          768

#define HEIGHT_IPHONE                                                       [SupportFunction getDeviceHeight]
#define WIDTH_IPHONE                                                        [SupportFunction getDeviceWidth]
#define HEIGHT_IPHONE_5                                                     [SupportFunction getDeviceHeight]
#define WIDTH_IPHONE_5                                                      [SupportFunction getDeviceWidth]
#define HEIGHT_IPAD                                                         [SupportFunction getDeviceHeight] 
#define WIDTH_IPAD                                                          [SupportFunction getDeviceWidth]

#define VIEW_FULL_SCREEN                                                    [[UIView alloc] initWithFrame:CGRectMake(0, 0, WIDTH_IPHONE, HEIGHT_IPHONE)]
#define VIEW_PART_SCREEN_EXPEL_TITLE_BAR                                        [[UIView alloc] initWithFrame:CGRectMake(0, 42, WIDTH_IPHONE, HEIGHT_IPHONE - HEIGHT_HOME_VIEW_CONTROLLER_TITLE)]

#define HEIGHT_STATUS_BAR                                                   20
#define HEIGHT_TOOL_BAR                                                     44
#define HEIGHT_AD_BANNER                                                    50
#define HEIGHT_TAB_BAR                                                      49

#define HEIGHT_IPHONE_KEYBOARD                                              216
#define HEIGHT_IPHONE_KEYBOARD_LANDSCAPE                                    162
#define HEIGHT_IPAD_KEYBOARD                                                264
#define HEIGHT_IPAD_KEYBOARD_LANDSCAPE                                      352

#define HEIGHT_HOME_VIEW_CONTROLLER_TITLE                                   44
#define HEIGHT_SIMPLE_KARD_NAME_BOTTOM                                      40
#define HEIGHT_KARD_BUILDER_BOTTOM_TABBAR                                   50
#define HEIGHT_KONNECT_BOTTOM_TABBAR                                        50

#define HEIGHT_DEAL_ADS                                                     75

#define WIDTH_KARDS_CELL_AVATAR                                                     70
#define HEIGHT_KARDS_CELL_AVATAR                                                    105
#define HEIGHT_ALBUM_KARDS_CELL                                              110

#define HEIGHT_KARDS_CELL_NAME                                                      19
#define MARGIN_KARDS_CELL                                                           30
#define MARGIN_KARDS_CELL_LEFT                                                      25
#define MARGIN_KARDS_CELL_TOP                                                       10
#define MARGIN_KARDS_CELL_RIGHT                                                     5
#define MARGIN_KARDS_CELL_BOTTOM                                                    150

#define WIDTH_VIEW_CELL_VIDEO                                                       100
#define HEIGHT_VIEW_CELL_VIDEO                                                      75

#define HEIGHT_DECK_SIMI_DELAY_VIEW                                                 75
#define HEIGHT_DECK_KARD_BUILD_VIEW                                                 40

#define WIDTH_SEARCH_TREE_KARDS_CELL_AVATAR                                         50
#define HEIGHT_SEARCH_TREE_KARDS_CELL_AVATAR                                        70
#define WIDTH_SEARCH_TREE_ARROW_VIEW                                                8
#define HEIGHT_SEARCH_TREE_ARROW_VIEW                                               11
#define MARGIN_SEARCH_TREE_LEFT                                                     5
#define MARGIN_SEARCH_TREE_KARDS_CELL                                               0

#define HEIGHT_SELECT_KARDS_SCROLL_VIEW                                             50
#define WIDTH_SELECT_KARDS_CELL_VIEW                                                30
#define HEIGHT_SELECT_KARDS_CELL_VIEW                                               45
#define MARGIN_SELECT_KARDS_LEFT                                                    24
#define MARGIN_SELECT_KARDS_CELL_VIEW                                               8

#define HEIGHT_SELECT_KARDS_SCROLL_REPLACE_VIEW                                     80
#define WIDTH_SELECT_KARDS_CELL_REPLACE_VIEW                                        67

#define WIDTH_MULTIPLE_SELECT_KARD_CHECK_BTN                                        19
#define HEIGHT_MULTIPLE_SELECT_KARD_CHECK_BTN                                       19

#define WIDTH_TABLE_KARDS_POPUP_VIEW                                                240
#define HEIGHT_TABLE_KARDS_POPUP_VIEW                                               240

#define INT_RADIUS_SELECTED_KARD_AVATAR                                             3
#define INT_WIDTH_BORDER_SELECTED_KARD_AVATAR                                       1
#define INT_RADIUS_SMALL_AVATAR                                                     6
#define INT_WIDTH_BORDER_SMALL_AVATAR                                               1
#define INT_RADIUS_MEDIUM_AVATAR                                                    20
#define INT_RADIUS_LOCALESE_AVATAR                                                    16
#define INT_RADIUS_MEDIUM_SHADOW                                                    32
#define INT_RADIUS_MEDIUM_CREDIT_KARD                                               10
#define INT_WIDTH_BORDER_MEDIUM_AVATAR                                              1
#define INT_RADIUS_LARGE_AVATAR                                                     35
#define INT_WIDTH_BORDER_LARGE_AVATAR                                               1

#define FONT_SIZE_KARD_LABEL_MINIMUM                                                5
#define FONT_SIZE_KARD_LABEL_CURRENT                                                12

#define REFRESH_HEADER_HEIGHT                                                       60.0
#define REFRESH_FOOTER_HEIGHT                                                       60.0
#define BOTTOM_GRADIENT_HEIGHT                                                      50.0
#define NUMBER_OF_DEALS_PER_SCREEN                                                  3
#define NUMBER_OF_DEALS_PER_LOAD                                                    20
#define CELL_HEIGHT_WITH_DATE_HEADER                                                105
#define CELL_HEIGHT_WITHOUT_DATE_HEADER                                             105
#define MAX_NUMBER_OF_DEALS                                                         100

// HOME MENU
#define HEIGHT_GROUP_HOME_VIEW                                                      30
#define HEIGHT_HEADER_HOME_VIEW                                                     50
#define HEIGHT_FOOTER_HOME_VIEW                                                     60
#define HEIGHT_HOME_FILTER_CELL                                                     49

#define MAX_LENGTH_OF_THOUGHTS                                                       200


#define LAST_UPDATE_TIME_FOR_ACTIVE_DEALS                   @"LastUpdateTimeForActiveDeals"
#define LAST_UPDATE_TIME_FOR_ALL_DEALS                      @"LastUpdateTimeForAllDeals"
#define LAST_UPDATE_TIME_FOR_PREVIOUS_DEALS                 @"LastUpdateTimeForPreviousDeals"
#define LOADING_TEXT_PULL                                   @"Pull down to refresh...";
#define LOADING_TEXT_RELEASE                                @"Release to refresh...";
#define LOADING_TEXT_LOADING                                @"Loading...";
#define LOADING_TEXT_OLD_PULL                               @"Pull up to load more...";
#define LOADING_TEXT_OLD_RELEASE                            @"Release to load more...";

#define LAST_UPDATE_TIME_FOR_FEED                  @"LastUpdateTimeForFeed"

#define RECORDED_VIDEO_NAME                        @"recordedVideo.mov"
#define RECORDED_VIDEO_THUMB                       @"videoThumb.png"


#define FRAME(a,b,c,d)                              CGRectMake(a, b, c, d)

#define FRAME_MAIN(view)                     FRAME(0, view.frame.origin.y, view.frame.size.width, view.frame.size.height)
#define FRAME_RIGHT(view, dis)               FRAME(dis, view.frame.origin.y, view.frame.size.width, view.frame.size.height)
#define FRAME_LEFT(view, dis)                FRAME(-dis, view.frame.origin.y, view.frame.size.width, view.frame.size.height)
#define FRAME_TOP(view, dis)                 FRAME(view.frame.origin.x, -dis, view.frame.size.width, view.frame.size.height)
#define FRAME_BOTTOM(view, dis)              FRAME(view.frame.origin.x, dis, view.frame.size.width, view.frame.size.height)

#define STRING_ALERT_RETRY                                          @"Retry"
#define STRING_ALERT_CANCEL                                         @"Cancel"
#define STRING_ALERT_OK                                             @"OK"
#define STRING_ALERT_DISMISS                                        @"Dismiss"
#define STRING_ALERT_YES                                            @"Yes"
#define STRING_ALERT_NO                                             @"No"
#define STRING_ALERT_CANCEL                                         @"Cancel"
#define STRING_ALERT_DELETE                                         @"Delete"
#define STRING_ALERT_INAPPROPRIATE                                  @"Flag as inappropriate"
#define STRING_ALERT_FLAG                                           @"Flag"

#define STRING_ALERT_TITLE_WARNING                                  @"Warning"
#define STRING_ALERT_TITLE_ALERT                                    @"Alert"
#define STRING_ALERT_TITLE_ANNOUNCERMENT                            @"Announcement"
#define STRING_ALERT_TITLE_ERROR                                    @"Error"
#define STRING_ALERT_TITLE_SORRY                                    @"Sorry"
#define STRING_ALERT_TITLE_SUCCESS                                  @"Success"
#define STRING_ALERT_TITLE_FAILURE                                  @"Failure"

#define STRING_CATEGORY_NAME                                        @"name"
#define STRING_CATEGORY_ICON_NAME                                   @"icon"
#define STRING_CATEGORY_ICON_ACTIVE_NAME                            @"iconAct"
#define STRING_CATEGORY_TEMPLATE                                    @"template"
#define STRING_CATEGORY_RED_COLOR                                   @"red"
#define STRING_CATEGORY_GREEN_COLOR                                 @"green"
#define STRING_CATEGORY_BLUE_COLOR                                  @"blue"

#define STRING_ALERT_MESSAGE_CAMERA_PHOTO_NOT_SUPPORTED             @"This device is not supported for Camera or Photo"
#define STRING_ALERT_MESSAGE_CHOOSED_KARD                           @"You have already chosen a Kard"
#define STRING_ALERT_MESSAGE_TURN_ON_LOCATION_SERVICE               @"Please turn on Location Service\n to use this app"
#define STRING_ALERT_MESSAGE_TRADE_UNSUCCESSFULLY                   @"Trade Unsuccessful"
#define STRING_ALERT_MESSAGE_APPROVE_UNSUCCESSFULLY                 @"Approve Unsuccessful"
#define STRING_ALERT_MESSAGE_DISAPPROVE_UNSUCCESSFULLY              @"Disapprove Unsuccessful"
#define STRING_ALERT_MESSAGE_CANCEL_UNSUCCESSFULLY                  @"Cancel Unsuccessful"
#define STRING_ALERT_MESSAGE_DELETE_UNSUCCESSFULLY                  @"Delete Unsuccessful"
#define STRING_ALERT_MESSAGE_HIDE_UNSUCCESSFULLY                    @"Hide Unsuccessful"
#define STRING_ALERT_MESSAGE_UNHIDE_UNSUCCESSFULLY                  @"Unhide Unsuccessful"
#define STRING_ALERT_MESSAGE_MAKE_DEFAULT_UNSUCCESSFULLY            @"Make Active Unsuccessful"
#define STRING_ALERT_MESSAGE_DELETE_IS_MY_DEFAULT_KARD              @"This Kard can not be deleted,\n because it is your active Kard.\n  Please select another active Kard prior to delete this Kard"
#define STRING_ALERT_MESSAGE_DELETE_IS_MY_DEFAULT_PROFILE           @"This Profile can not be deleted,\n because it is your active Profile.\n  Please select another active Profile prior to delete this Profile"
#define STRING_ALERT_MESSAGE_UNCHECK_IS_MY_DEFAULT_PROFILE          @"This Profile can not be unchecked,\n because it is your active Profile.\n  Please select another active Profile prior to uncheck this Profile"
#define STRING_ALERT_MESSAGE_EXISTED_KARD_NAME                      @"Sorry, that Kard name is already in use.  Please try again"
#define STRING_ALERT_MESSAGE_KARD_TYPE_ERROR                        @"Sorry, this Kard type is not supported"
#define STRING_ALERT_MESSAGE_KARD_SHARE_SUCCESS                     @"The was share successful"
#define STRING_ALERT_MESSAGE_KARD_SHARE_UNSUCCESS                   @"The share was unsuccessful"

#define STRING_ALERT_MESSAGE_SUGGESTION_EMPTY                       @"There is no Kard to replace"
#define STRING_ALERT_MESSAGE_SHARE_EMPTY                            @"Please konnect with people before introduce this kard with them."

#define STRING_ALERT_MESSAGE_KONNECT_NO_KARD_PENDING                @"No Pending Kards"
#define STRING_ALERT_MESSAGE_KONNECT_NO_KARD_FILTER_ALL             @"No Kards in the Proximity"
#define STRING_ALERT_MESSAGE_KONNECT_NO_KARD_FILTER_PERSONAL        @"No Kards in Personal"
#define STRING_ALERT_MESSAGE_KONNECT_NO_KARD_FILTER_BUSINESSES      @"No Kards in Businesses"
#define STRING_ALERT_MESSAGE_KONNECT_NO_KARD_FILTER_EVENTS          @"No Kards in Events"
#define STRING_ALERT_MESSAGE_KONNECT_NO_KARD_FILTER_PLACES          @"No Kards in Places"
#define STRING_ALERT_MESSAGE_KONNECT_NO_KARD_FILTER_CUSTOM          @"No Kards in Custom"
#define STRING_ALERT_MESSAGE_KONNECT_NO_KARD_SEARCH                 @"No Kards in Search"

#define STRING_ALERT_MESSAGE_KARD_BUILDER_TOUCH_BACK_BUTTON         @"All data will be lost!\nDo you want to exit"
#define STRING_ALERT_MESSAGE_KARD_BUILDER_IMAGE_AND_TEXT_MUST_BE_AVAILABLE      @"The sample image and text must be edited before saving"

#define STRING_ALERT_MESSAGE_KARD_BUILDER_KARD_NAME_MUST_BE_AVAILABLE @"please edit the kard name"

#define STRING_ALERT_MESSAGE_KARD_BUILDER_PRIVACY_OF_ACTIVE_KARD @"This kard is active, you can not change it's privacy"

#define STRING_ALERT_MESSAGE_KARD_BUILDER_PROFILE_MUST_BE_AVAILABLE             @"Kard's profile must be available"
#define STRING_ALERT_MESSAGE_KARDS_VIEW_CONTROLLER_DELETE_PENDING_KARD      @"This Kard is Pending approval from the owner.  Do you wish to delete this Kard from Your My Kards Deck?"
#define STRING_ALERT_MESSAGE_TRADE_EXISTED_KONNECT                  @"This Kard is traded"

#define STRING_ALERT_MESSAGE_LOGOUT_CONFIRMATION                  @"Are you sure you want to logout?"

#define STRING_ALERT_EMAIL_CAN_NOT_SEND                             @"Your device doesn't support the composer sheet, or devide don't have any account email"
#define STRING_ALERT_SMS_CAN_NOT_SEND                               @"Your device doesn't support sent SMS"
#define STRING_SMS_SHARE_KARD                                       @"ABCCCNCC"
#define STRING_SUBJECT_SHARE_KARD                                   @"SHARE KARD"
#define STRING_SHARE_KARD_MESSAGE_BODY                              @"STRING_MESSAGE_BODY"

#define STRING_ALERT_REGISTRATION_UNSUCCESS                         @"Sorry! Account registration is unsuccessful, Please try again"
#define STRING_ALERT_REGISTRATION_USER_NAME_ALREADY                 @"Sorry, that username is already registered."
#define STRING_ALERT_REGISTRATION_EMAIL_ALREADY                     @"Sorry, the email address you are using is already registered.  Is this yours? Would you like to recover the password for it?"
#define STRING_ALERT_RECOVERY_PASSWORD_EMAIL_INVALID                @"Invalid Email"
#define STRING_ALERT_RECOVERY_PASSWORD_SUCCESS                      @"OK, we've sent the new account password and reset wallet PIN to your email.  Please check your email, then try logging in."
#define STRING_ALERT_LOGIN_USER_NAME_INVALID                        @"Invalid Username"
#define STRING_ALERT_LOGIN_RECOVERY_PASSWORD_SCREEN_REQUIRED        @"Username not found, Do you want to try entering an email?"
#define STRING_ALERT_ENTER_EMAIL                                    @"Enter email please"
#define STRING_ALERT_REPLACE_SUCCESSFULLY                           @"Replace kard successful"
#define STRING_ALERT_REPLACE_UNSUCESSFULLY                          @"Replace kard unsucessful"
#define STRING_ALERT_CHECK_INVATION_CODE_INVALID                    @"Sorry, that code is either invalid or expired"
#define STRING_ALERT_SEND_GIFT_SUCCESS                              @"Deal gift successfully"
#define STRING_ALERT_SEND_GIFT_UNSUCESS                             @"Deal gift unsuccessfully"
#define STRING_EMPTY                                                @""

#define STRING_POPUP_CREATE_NEW_DECK                                @"Create New Deck"
#define STRING_POPUP_PASTE                                          @"Paste"
#define STRING_POPUP_CREATE_NEW_DECK_AND_PASTE                      @"Create New Deck and Paste"
#define STRING_POPUP_REMOVE_FROM_DECK                               @"Remove from Deck"
#define STRING_POPUP_DELETE_THIS_KARD_ENTIRELY                      @"Delete this Kard Entirely"
#define STRING_POPUP_COPY                                           @"Copy"
#define STRING_POPUP_EDIT                                           @"Edit"
#define STRING_POPUP_CANCEL                                         @"Cancel"

#define STRING_ALERT_BUY_AND_GIVE_NO_FRIEND                         @"Sorry, You have no friend. Buy and Give gift kard required konnect friends"

// login
#define kAlertPasswordOrUserNameIncorect1                  @"Sorry, your username/password combination is incorrect, Please try again.Would you like to recover your password via email?"
#define kAlertPasswordOrUserNameIncorect2                  @"Sorry, your username/password combination is incorrect, Please try again. (Attempt 2/5) Would you like to recover your password via email?"
#define kAlertPasswordOrUserNameIncorect3                  @"Sorry, your username/password combination is incorrect, Please try again. (Attempt 3/5) Would you like to recover your password via email?"
#define kAlertPasswordOrUserNameIncorect4                  @"Sorry, your username/password combination is incorrect, Please try again. (Attempt 4/5) Would you like to recover your password via email?"
#define kAlertPasswordOrUserNameIncorect5                  @"Sorry, you have reached the maximum number of unsuccessful login attempts, please wait 5 minutes and try again, Would you like to recover your password via email?"

// Sign up
#define kAlertFirstNameErrorEmpty           @"Please enter a first name."
#define kAlertFirstNameErrorTooLong         @"Sorry, your firt name is just too long!  Please enter a first name 32 characters or less."
#define kAlertFirstNameErrorFormat          @"Sorry, please enter a first name with only standard letters a-z, space, or hyphen."
#define kAlertLastNameErrorEmpty            @"Please enter a last name."
#define kAlertLastNameErrorTooLong          @"Sorry, your last name is just too long!  Please enter a last name 32 characters or less."
#define kAlertLastNameErrorFormat           @"Sorry, please enter a last name with only standard letters a-z, space, or hyphen."
#define kAlertUserNameErrorLeast            @"Please enter a username of at least 2 characters"
#define kAlertUserNameErrorTooLong          @"Sorry, your username is just too long!  Please enter a username 20 characters or less."
#define kAlertUserNameErrorFormat           @"Sorry, please enter a username with only standard letters a-z, standard numbers 0-9,  or hyphen."
#define kAlertEmailErrorFormat              @"Sorry, we need a valid email address.  Please try again."
#define kAlertPasswordNotMatch              @"Passwords did not match.  Please try again."
#define kAlertPasswordFormat                @"Please enter a password between 6 and 20 characters in length."
#define kAlertEmptyField                    @"Sorry, you must fill in all fields"
#define kAlertInavtionCodeInvalid           @"Sorry, invation Code must be 8 characters"


#define STRING_COMPARED_NSARRAY_M                                           @"__NSArrayM"
#define STRING_COMPARED_NSCFSTRING                                          @"__NSCFString"
#define STRING_COMPARED_NSCFCONSTANTSTRING                                  @"__NSCFConstantString"
#define STRING_COMPARED_NSCONCRTEMUTABLEDATA                                @"NSConcreteMutableData"
#define STRING_COMPARED_HOME_VIEW_CONTROLLER                                @"HomeViewController"
#define STRING_COMPARED_KARDS_VIEW_CONTROLLER                               @"KardsViewController"
#define STRING_COMPARED_NEW_KARDS_VIEW_CONTROLLER                           @"NewKardsViewController"
#define STRING_COMPARED_DECK_KARDS_VIEW_CONTROLLER                          @"DeckKardsViewController"
#define STRING_COMPARED_ALBUM_ADD_OBJECTS_VIEW_CONTROLLER                   @"AlbumAddObjectViewController"


#define STRING_LOGIN_ON_FB                                                  @"loginOnFB"
#define STRING_LOGIN_ON_TWITTER                                             @"loginOnTwitter"
#define STRING_COMPARED_KARDS_NODE_DATA                                     @"KardsNodeData"
#define STRING_COMPARED_KARDS_CATEGORY_DATA                                 @"KardsCategoryData"

//#define STRING_IMG_DECK_DUMMY                                               @"bg_kard_grid_9_deck.png"
#define STRING_IMG_DECK_DUMMY                                               @"bg_deck_dummy.png"
#define STRING_IMG_KARD_DUMMY                                               @"bg_kard_thumb.png"
//#define STRING_IMG_KARD_DUMMY_SMALL                                         @"img_kard_dummy_84x115.png"
//#define STRING_IMG_KARD_DUMMY_MEDIUM                                        @"img_kard_dummy_224x381.png"
//#define STRING_IMG_KARD_DUMMY_LARGE                                         @"img_kard_dummy_320x460.png"

#define STRING_IMG_TAG_DUMMY                                                @"kl-bg-deck.png"
#define STRING_IMG_BANNER_DUMMY                                             @"pg_pixel_transparent.png"
#define STRING_IMG_INSTAGRAM_DUMMY                                          @"pg_pixel_transparent.png"
#define STRING_IMG_KARD_DUMMY_SMALL                                         @"kard-default.png"
#define STRING_IMG_KARD_DUMMY_MEDIUM                                        @"kard-default.png"
#define STRING_IMG_KARD_DUMMY_LARGE                                         @"kard-default.png" 
#define STRING_IMG_GIFT_KARD_LOADING                                         @"gift-kard-loading.png"

#define STRING_IMG_KONNECT_BACKGROUND_DEFAULT                                        @"kn_bg_main.png"

#define MESSAGE_PHOTO_UPLOADING_SUCCESSFULLY    @"Photo has been successfully uploaded."
#define MESSAGE_PHOTOS_UPLOADING_SUCCESSFULLY   @"Photos have been successfully uploaded."
#define MESSAGE_VIDEO_UPLOADING_SUCCESSFULLY    @"Video has been successfully uploaded."
#define MESSAGE_STATUS_UPLOADING_SUCCESSFULLY   @"Status has been successfully posted."

#define MESSAGE_LOCATION_TURN_OFF               @"No locations available. Please check\nto see if location services are turned\non for Visikard."


#define STRING_IMG_KARDS_VIEW_CONTROLLER                                    @"btn_home_kard.png"
#define STRING_IMG_SEARCH_TREE_ARROW                                        @"img_arrow_right_white.png"
#define STRING_IMG_SELECT_KARDS_ARROW_LEFT                                  @"icon_konnect_arrow_back_kard.png"
#define STRING_IMG_SELECT_KARDS_ARROW_RIGHT                                 @"icon_konnect_arrow_next_kard.png"
#define STRING_IMG_HOME_VIEW_CONTROLLER                                     @"Default.png"
#define STRING_IMG_SIMI_DELAY_VIEW_BG_DARK                                  @"pg_pixel_transparent.png"
#define STRING_IMG_SIMI_DELAY_VIEW_BG                                       @"pixel_transparent.png"
#define STRING_IMG_POPUP_VIEW_BTN_BLACK_BACKGROUND                          @"bg_button_black_tap_popup.png"
#define STRING_IMG_POPUP_VIEW_BTN_GREEN_BACKGROUND                          @"bg_button_green_tap_popup.png"
#define STRING_IMG_UNSELECTED_BTN_BACKGROUND                                @"head_bg_bar.png"
#define STRING_IMG_SELECTED_BTN_BACKGROUND                                  @"bg_bar_btn_select.png"
#define STRING_IMG_TOP_BACKGROUND                                           @"bg_top_background.png"
#define STRING_IMG_BOTTOM_BACKGROUND                                        @"bg_bottom_background.png"
#define STRING_IMG_MID_BACKGROUND                                           @"bg_mid_background.png"
#define STRING_IMG_TOP_BACKGROUND_NEW                                       @"bg_top_new.png"
#define STRING_IMG_BOT_BACKGROUND_NEW                                       @"bg_bot_new.png"
#define STRING_IMG_MID_BACKGROUND_NEW                                       @"bg_mid_new.png"
#define STRING_IMG_NONE                                                     @"bg_main_background.png"
#define STRING_IMG_CAMERA                                                   @"comment_cam.png"

#define STRING_ID_FB_FORMATTER(id)                      [NSString stringWithFormat:@"fb_%@", id]
#define STRING_ID_TW_FORMATTER(id)                      [NSString stringWithFormat:@"tw_%@", id]

#define STRING_DEALS_TITLE                                      @"Deals"
#define STRING_MYKARDS_TITLE                                    @"My Kards"
#define STRING_KONNECT_TITLE                                    @"Konnect"
#define STRING_PROFILE_MANAGER_TITLE                            @"Profile Manager"
#define STRING_MY_DEALS_TITLE                                   @"My Deals"

#define STRING_MSS_KARD_BUILDER_TIP                                         @"Click here to \nbuild a Kard"

#define STRING_LOCATION_LATITUDE_DEFAULT                        @"+10.773000" 
#define STRING_LOCATION_LONGTITUDE_DEFAULT                      @"106.677700" 
//#define STRING_LOCATION_LATITUDE_DEFAULT                        @"+10.805476" // real for test 
//#define STRING_LOCATION_LONGTITUDE_DEFAULT                      @"106.645678" // real for test

// NOTIFICATION STRING
#define STRING_NOTIFICATION_LEFT_MENU                           @"STRING_NOTIFICATION_LEFT_MENU"
#define STRING_NOTIFICATION_RIGHT_MENU_WILL_OPEN                @"STRING_NOTIFICATION_RIGH_MENU_WILL_OPEN"
#define STRING_NOTIFICATION_RIGHT_MENU_WILL_CLOSE               @"STRING_NOTIFICATION_RIGH_MENU_WILL_CLOSE"
#define STRING_NOTIFICATION_LEFT_MENU_WILL_CLOSE                @"STRING_NOTIFICATION_LEFT_MENU_WILL_CLOSE"
#define STRING_NOTIFICATION_FINISH_ADD_NEW_KARD                 @"STRING_NOTIFICATION_FINISH_ADD_NEW_KARD"
#define STRING_NOTIFICATION_CHANGE_LOCATION                     @"STRING_NOTIFICATION_CHANGE_LOCATION"
#define STRING_NOTIFICATION_KARD_TRADED                         @"KardSuccessfullyTraded"
#define STRING_NOTIFICATION_LOAD_KARDS_ON_DELETE                @"STRING_NOTIFICATION_LOAD_KARDS_ON_DELETE"
#define STRING_NOTIFICATION_STAR_RATING_CHANGED                @"STRING_NOTIFICATION_STAR_RATING_CHANGED"
#define STRING_NOTIFICATION_BUSINESS_KARD_UNTRADED              @"STRING_NOTIFICATION_BUSINESS_KARD_UNTRADED"


#define STRING_TRADE_NOTIFICATION_TIP                           @"SWIPE TO APPROVE"
#define FILTER_PEOPLE                                           @"PEOPLE"
#define FILTER_BUSINESS                                         @"BUSINESSES"

#define FLAG_INIT                                                               1

#define kthumbnailWidth                                                         80
#define kthumbnailHeight                                                        80
#define kImagesPerRow                                                           3

#define STRING_PERSONAL_KARD                                                1
#define STRING_BUSINESS_KARD                                                2
#define STRING_EVENT_KARD                                                   3
#define STRING_DEAL_KARD                                                    4
#define STRING_PLACE_KARD                                                   6


#define STRING_MAP_PANE                                                     @"map_pane"
#define STRING_DATE_TIME_PANE                                               @"date_pane"
#define STRING_PROMOTED_PANE                                                @"promoted_pane"

#define STRING_MAP_ICON                                                     @"map_icon"
#define STRING_DATE_TIME_ICON                                               @"date_icon"
#define STRING_PROMOTED_ICON                                                @"promoted_icon"

#define ALBUM_IS_SELECTED_KEY                                               @"isSelected"


#define UIColorFromRGB(rgbValue)                    [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

#define SOUND_PAGING_ANIMATION_CURL_UP                                      @"paging_animation_curl_up.mp3"

//kard builder
#define DEFAULT_MSG                                                         @"Tap to edit introduction"
#define INT_NUM_OF_TEMPLATE_EACH_PAGE                                       100
#define kIntTagButton                                                       1000

typedef enum 
{
    ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE_INVALID,
    ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE_HOME_SCREEN,
    ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE_KARDS_VIEW_CONTROLLER,
    ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE_DECK_VIEW_CONTROLLER,
    ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE_SIMPLE_KARD_VIEW_CONTROLLER,
    ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE_KARD_BUILDER_VIEW_CONTROLLER,
    
    ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE_KONNECT_VIEW_CONTROLLER,
    
    ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE_DEALS_VIEW_CONTROLLER,
    
    ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE_NEWS_VIEW_CONTROLLER
}ENUM_APP_VIEW_CONTROLLER_SCREEN_TYPE;

typedef enum 
{
    ENUM_APP_VIEW_CONTROLLER_STEP_INVALID,
    ENUM_APP_VIEW_CONTROLLER_STEP_UPDATE_USER_LOCATION,
    ENUM_APP_VIEW_CONTROLLER_STEP_GET_USER_PROFILE,
    ENUM_APP_VIEW_CONTROLLER_STEP_UPDATE_USER_ONLINE_STATUS,
    ENUM_APP_VIEW_CONTROLLER_STEP_END
}ENUM_APP_VIEW_CONTROLLER_STEP;

typedef enum
{
    ENUM_APP_VIEW_LOCALEZE_ALL,
    ENUM_APP_VIEW_LOCALEZE_PEOPLE,
    ENUM_APP_VIEW_LOCALEZE_BUSINESS
}ENUM_APP_LOCALEZE_TYPE;

typedef enum
{
    ENUM_APP_VIEW_COMING_FROM_MUTUAL_KARDS,
    ENUM_APP_VIEW_COMING_FROM_KONNECT_KARDS,
    ENUM_APP_VIEW_COMING_FROM_MY_KARDS
    
}ENUM_APP_COMING_FROM_TYPE;


typedef enum
{
    ENUM_API_REQUESTER_STEP_INVALID,
    ENUM_API_REQUESTER_STEP_REQUEST,
    ENUM_API_REQUESTER_STEP_REQUEST_WAITING,
    ENUM_API_REQUESTER_STEP_FAILED,
    ENUM_API_REQUESTER_STEP_FINISHED,
    ENUM_API_REQUESTER_STEP_TIMEOUT,
    ENUM_API_REQUESTER_STEP_ALERT_SHOWING,
    ENUM_API_REQUESTER_STEP_END
}ENUM_API_REQUESTER_STEP;

typedef enum 
{
    ENUM_API_REQUEST_TYPE_INVALID,
    ENUM_API_REQUEST_TYPE_SD_PHOTO,
    ENUM_API_REQUEST_TYPE_FB_GET_PROFILE,
    ENUM_API_REQUEST_TYPE_FB_GET_PROFILE_PICTURE,
    ENUM_API_REQUEST_TYPE_FB_GET_PROFILE_PICTURE_URL,
    ENUM_API_REQUEST_TYPE_TW_GET_PROFILE,
    ENUM_API_REQUEST_TYPE_TW_GET_PROFILE_PICTURE,
    ENUM_API_REQUEST_TYPE_USER_GET_ALL,
    ENUM_API_REQUEST_TYPE_USER_REGISTER,
    ENUM_API_REQUEST_TYPE_USER_REGISTER_ADD,
    ENUM_API_REQUEST_TYPE_USER_LOGIN,
    ENUM_API_REQUEST_TYPE_USER_LOGOUT,
	ENUM_API_REQUEST_TYPE_USER_LOGIN_WITH_FB_TW,
    ENUM_API_REQUEST_TYPE_USER_UPDATE_LOCATION,
    ENUM_API_REQUEST_TYPE_USER_GET_PROFILE,
    ENUM_API_REQUEST_TYPE_USER_GET_BANNER_ADS,
    ENUM_API_REQUEST_TYPE_USER_UPDATE_ONLINE_STATUS,
    ENUM_API_REQUEST_TYPE_USER_FULL_NAME,
    ENUM_API_REQUEST_TYPE_USER_RECOVER_PASSWORD,
    ENUM_API_REQUEST_TYPE_CHECK_INVATION_CODE,
    ENUM_API_REQUEST_TYPE_USER_FORGET_PASSWORD,
    ENUM_API_REQUEST_TYPE_USER_CHANGE_PASSWORD,
    ENUM_API_REQUEST_TYPE_CHECK_EXIST_ACCOUNT_EMAIL,
    ENUM_API_REQUEST_TYPE_CHECK_ACCOUNT_ACTIVE,
    
    // Kards
    ENUM_API_REQUEST_TYPE_KARDS_TRADE_PENDING,
	ENUM_API_REQUEST_TYPE_KARDS_TRADE_APPROVE,
    ENUM_API_REQUEST_TYPE_KARDS_TRADE_DISAPPROVE,
    ENUM_API_REQUEST_TYPE_KARDS_TRADE_DISAPPROVE_AND_TRADE,
    ENUM_API_REQUEST_TYPE_KARDS_TRADE_CANCEL,
    ENUM_API_REQUEST_TYPE_KARDS_TRADE_UNTRADE,
    ENUM_API_REQUEST_TYPE_KARDS_SHARE_APPROVE,
    ENUM_API_REQUEST_TYPE_KARDS_SHARE_IGNORE,
    ENUM_API_REQUEST_TYPE_KARDS_GET_ALL,
    ENUM_API_REQUEST_TYPE_KARDS_GET_SHARE_KARD,
    ENUM_API_REQUEST_TYPE_KARDS_GET_ME,
    ENUM_API_REQUEST_TYPE_KARDS_GET_ALBUM,
    ENUM_API_REQUEST_TYPE_KARDS_ADD_ALBUM,
    ENUM_API_REQUEST_TYPE_KARDS_OWNER_KADR_ABUM,
    ENUM_API_REQUEST_TYPE_KARDS_GET_TRENDING,
    ENUM_API_REQUEST_TYPE_KARDS_DELETE,
    ENUM_API_REQUEST_TYPE_KARDS_HIDE,
    ENUM_API_REQUEST_TYPE_KARDS_UNHIDE,
    ENUM_API_REQUEST_TYPE_KARDS_SETTING_SORT_TYPE_SHOW_UNREAD_UPDATE,
    ENUM_API_REQUEST_TYPE_KARDS_GET_TRADED_KARDS_WITH_ME,
    ENUM_API_REQUEST_TYPE_KARDS_MAKE_DEFAULT,
    ENUM_API_REQUEST_TYPE_KARDS_CHANGE_PROFILE,
    ENUM_API_REQUEST_TYPE_KARDS_CHECK_IN,
    ENUM_API_REQUEST_TYPE_KARDS_CHECK_OUT,
    ENUM_API_REQUEST_TYPE_KARDS_SHARE_KARD,
    ENUM_API_REQUEST_TYPE_KARDS_REPLACE_ALL_KONNECT,
    ENUM_API_REQUEST_TYPE_KARDS_REPLACE_SIMPLE_KONNECT,
    ENUM_API_REQUEST_TYPE_KARDS_SEARCH_MY_KARDS,
    ENUM_API_REQUEST_TYPE_KARDS_SHARE_VIA_EMAIL,
    ENUM_API_REQUEST_TYPE_KARDS_UPDATE_TAGS,
    ENUM_API_REQUEST_TYPE_KARDS_ADD_TAGS,
    ENUM_API_REQUEST_TYPE_KARDS_GET_ALL_TAG,
    ENUM_API_REQUEST_TYPE_USER_GET_ALL_TAG,
    ENUM_API_REQUEST_TYPE_MY_KARD_SEND_MESSAGE_TO_GROUP,
    ENUM_API_REQUEST_TYPE_UPDATE_TAG,
    ENUM_API_REQUEST_TYPE_ADD_KARDS_TO_TAG,
    
    // business kard
    ENUM_API_REQUEST_TYPE_BUSINESS_KARDS_TRADE_PENDING,
    ENUM_API_REQUEST_TYPE_BUSINESS_KARDS_SHARE_BY_EMAIL,
    ENUM_API_REQUEST_TYPE_BUSINESS_KARDS_SHARE_BY_INTRODUCTION,
    ENUM_API_REQUEST_TYPE_LOCALEZE_BUSINESS_KARD_INFO,
    
    
    // Konnect
    ENUM_API_REQUEST_TYPE_KONNECT_GET_KARD_ID,
    ENUM_API_REQUEST_TYPE_KONNECT_GET_FILTER,
    ENUM_API_REQUEST_TYPE_KONNECT_GET_PENDING,
    ENUM_API_REQUEST_TYPE_KONNECT_GET_SEARCH,
    ENUM_API_REQUEST_TYPE_KONNECT_GET_BUSINESSES,
    ENUM_API_REQUEST_TYPE_KONNECT_SET_VISIBILITY,
    ENUM_API_REQUEST_TYPE_KONNECT_GET_MUTUAL_TRADE_KARDS,
    ENUM_API_REQUEST_TYPE_KONNECT_GET_MUTIPLE_PENDING_KARD,
    ENUM_API_REQUEST_TYPE_KONNECT_APPROVE_MUTIPLE_PENDING_KARD,
    ENUM_API_REQUEST_TYPE_KONNECT_DISAPPROVE_MUTIPLE_PENDING_KARD,
    ENUM_API_REQUEST_TYPE_KONNECT_HOME_GET_FILTER,
    ENUM_API_REQUEST_TYPE_KONNECT_GET_SEARCH_PEOPLE,
    ENUM_API_REQUEST_TYPE_KONNECT_GET_PROMOTED_KARD,
    ENUM_API_REQUEST_TYPE_KONNECT_INFO,
    ENUM_API_REQUEST_TYPE_LOCALESE_GET_TRADED_WITH_LIST,
    ENUM_API_REQUEST_TYPE_LOCALESE_MUTE_KARD,
    ENUM_API_REQUEST_TYPE_LOCALESE_RATING_KARD,
    ENUM_API_REQUEST_TYPE_LOCALESE_RATING_KARD_INFO,
    ENUM_API_REQUEST_TYPE_LOCALESE_GET_IMAGE_WITHOUT_OVERLAY_AND_TEXT,
    

    
    ENUM_API_REQUEST_TYPE_BACK_KARD_INFO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_IMAGE_INFO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MESSAGE,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MESSAGE_PRIVATE,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MESSAGE_REFRESH,
    
    // back kard message
    ENUM_API_REQUEST_TYPE_BACK_KARD_TRADED_KARDS,
    
    
    ENUM_API_REQUEST_TYPE_GET_KARDS_PRIORITISE,
    ENUM_API_REQUEST_TYPE_GET_KARDS_HIDE,
    ENUM_API_REQUEST_TYPE_GET_KARDS_UN_PRIORITISE,
    ENUM_API_REQUEST_TYPE_GET_KARDS_UN_HIDE,
    
    // Kard Builder
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_TEMPLATES_STRUCTURE,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_GRAPHICS,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_GET_PROFILES,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_PROFILE_DETAIL,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_ADD,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_GET_CITY,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_GET_COUNTRY,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_ADD_IMAGE,
    ENUM_API_REQUEST_TYPE_ADD_PROFILE,
    ENUM_API_REQUEST_TYPE_UPDATE_PROFILE,
    ENUM_API_REQUEST_TYPE_DELETE_PROFILE,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_CHECK_KARD_NAME,
    ENUM_API_REQUEST_TYPE_PROFILE_MY_KARDS,
    ENUM_API_REQUEST_TYPE_PROFILE_CHECK_EXISTING,
    ENUM_API_REQUEST_TYPE_GET_KARDS_OF_PROFILE,
    ENUM_API_REQUEST_TYPE_SET_PROFILE_DEFAULT,
    ENUM_API_REQUEST_TYPE_SET_PROFILE_DEFAULT_PASS,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_TEMPLATE_ADD,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_TEMPLATE_EDIT_POST,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_TEMPLATE_EDIT_GET,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_UPLOAD_BANNER_IMAGE,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_UPLOAD_ORIGINAL_IMAGE,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_UPLOAD_ORIGINAL_IMAGE_IMPLICIT,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_UPLOAD_COVER_ALBUM,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_CREAT_ALBUM,
    ENUM_API_REQUEST_TYPE_KARD_BUILDER_ADJUST_IMAGE_WITHOUT_TEXT,
    // Back Kard
    ENUM_API_REQUEST_TYPE_BACK_KARD_ADD_COMMENT,
    ENUM_API_REQUEST_TYPE_BACK_KARD_ADD_MEDIA_STATUS,
    ENUM_API_REQUEST_TYPE_BACK_KARD_POST_MESSAGE,
    ENUM_API_REQUEST_TYPE_BACK_KARD_POST_MESSAGE_FROM_CONV_DETAILS,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_VIDEO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_PHOTO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_AUDIO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_ADD_MEDIA_PHOTO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_ADD_MEDIA_VIDEO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_ADD_MEDIA_AUDIO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_DELETE_MEDIA,
    ENUM_API_REQUEST_TYPE_BACK_KARD_GET_ALBUM,
    ENUM_API_REQUEST_TYPE_BACK_KARD_ADD_MEDIA_COMMENT,
    ENUM_API_REQUEST_TYPE_BACK_KARD_GET_MEDIA_COMMENT,
    ENUM_API_REQUEST_TYPE_BACK_KARD_EDIT_MEDIA,
    ENUM_API_REQUEST_TYPE_BACK_KARD_POST_MESSAE,
    ENUM_API_REQUEST_TYPE_BACK_KARD_POST_UPDATE_MEDIA_INFO,
    ENUM_POST_IMAGE_DATA_ADD_COMMENT,
    ENUM_API_REQUEST_TYPE_BACK_KARD_GET_MESSAGE_COMMENTS,
    ENUM_API_REQUEST_TYPE_GET_AUDIENCE, // get audience kard with short data
    ENUM_API_REQUEST_TYPE_GET_AUDIENCE_KARD, // get audience kard with full data (using new API)
    ENUM_API_REQUEST_TYPE_GET_MESSAGE_KARDS,
    ENUM_API_REQUEST_TYPE_GET_KARD_FROM_ID,
    ENUM_API_REQUEST_TYPE_SAVE_BACK_KARD_SETTINGS,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_VIDEO_AFTER_EIDT,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_PHOTO_AFTER_EIDT,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_AUDIO_AFTER_EIDT,
    ENUM_API_REQUEST_TYPE_BACK_KARD_VIEW_MEDIA,
    ENUM_API_REQUEST_TYPE_BACK_KARD_DELETE_THREAD,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_PHOTO_UPLOAD,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_PHOTO_SAVE,
    //new message conversation -> message details
    ENUM_API_REQUEST_TYPE_BACK_KARD_GET_CONVERSATIONS,
    ENUM_API_REQUEST_TYPE_BACK_KARD_GET_CONVERSATIONS_WITH_KARD,
    ENUM_API_REQUEST_TYPE_BACK_KARD_CONVERSATION_DETAILS,
    ENUM_API_REQUEST_TYPE_BACK_KARD_CONVERSATION_POST_MESSAGE,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MESSAGE_UPLOAD_PHOTO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MESSAGE_REPOST_PHOTO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_INIT_CONVERSATION,
    ENUM_API_REQUEST_TYPE_BACK_KARD_CONVERSATION_POST_MESSAGE_FROM_CONV,
    ENUM_API_REQUEST_TYPE_BACK_KARD_GET_ACTIVITIES_LIST,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_LIKE,
    ENUM_API_REQUEST_TYPE_BACK_KARD_THOUGHT_LIKE,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_GET_LIKES_LIST,
    ENUM_API_REQUEST_TYPE_BACK_KARD_THOUGHT_GET_LIKES_LIST,
    ENUM_API_REQUEST_TYPE_BACK_KARD_THOUGHT_GET_REPOST_LIST,
    ENUM_API_REQUEST_TYPE_BACK_KARD_THOUGHT_REPOST,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_GET_REPOST_LIST,
    ENUM_API_REQUEST_TYPE_BACK_KARD_MEDIA_REPOST,
    
    // Album
    ENUM_API_REQUEST_TYPE_ALBUM_UPDATE_DESCRIPTION,
    ENUM_API_REQUEST_TYPE_ALBUM_UPLOAD_MEDIA_VIDEO,
    ENUM_API_REQUEST_TYPE_ALBUM_UPLOAD_MEDIA_VIDEO_INFO,
    ENUM_API_REQUEST_TYPE_ALBUM_MEDIA_VIDEO,
    ENUM_API_REQUEST_TYPE_ALBUM_UPLOAD_MEDIA_PHOTO,
    ENUM_API_REQUEST_TYPE_ALBUM_UPLOAD_MEDIA,
    ENUM_API_REQUEST_TYPE_ALBUM_UPLOAD_MEDIA_PHOTO_INFO,
    ENUM_API_REQUEST_TYPE_ALBUM_MARK_MEDIA_INAPPROPRIATE,
    ENUM_API_REQUEST_TYPE_ALBUM_CREATE_ALBUM,
    ENUM_API_REQUEST_TYPE_ALBUM_UPDATE_ALBUM,
    ENUM_API_REQUEST_TYPE_ALBUM_UPLOAD_COVER_ALBUM,
    ENUM_API_REQUEST_TYPE_ALBUM_GET_INFO,
    ENUM_API_REQUEST_TYPE_ALBUM_DELETE_ITEM,
    ENUM_API_REQUEST_TYPE_ALBUM_DELETE,
    ENUM_API_REQUEST_TYPE_ALBUM_FLAG_ITEM,
    ENUM_API_REQUEST_TYPE_ALBUM_FLAG_ALBUM,
    ENUM_API_REQUEST_TYPE_ALBUM_PUT_COMMENT,
    ENUM_API_REQUEST_TYPE_ALBUM_GET_COMMENT,
     ENUM_API_REQUEST_TYPE_ALBUM_GET_LIKE_LIST,
    ENUM_API_REQUEST_TYPE_ALBUM_LIKE_ITEM,
    ENUM_API_REQUEST_TYPE_ALBUM_POST_PHOTO_ON_FB,
    ENUM_API_REQUEST_TYPE_ALBUM_POST_STATUS_ON_FB,
    ENUM_API_REQUEST_TYPE_ALBUM_POST_PHOTO_ON_TWITTER,
    ENUM_API_REQUEST_TYPE_ALBUM_POST_STATUS_ON_TWITTER,
    ENUM_API_REQUEST_TYPE_ALBUM_POST_PHOTO_ITEM_ON_FB,


    ENUM_API_REQUEST_TYPE_ALBUM_UPDATE_OBJECT_INFO,
    // About
    ENUM_API_REQUEST_TYPE_ABOUT_UPLOAD_INFO,
    ENUM_API_REQUEST_TYPE_ABOUT_GET_INFO,

    // Back Kard Profile Info
    ENUM_API_REQUEST_TYPE_BACK_KARD_UPDATE_PROFILE_INFO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_GET_PROFILE_INFO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_SET_STATUS,
    ENUM_API_REQUEST_TYPE_BACK_KARD_GET_CONTACT_INFO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_ADD_CONTACT_INFO,
    ENUM_API_REQUEST_TYPE_BACK_KARD_UPDATE_CONTACT_INFO,
    
    // Deals
    ENUM_API_REQUEST_TYPE_DEAL_GET_All,
    ENUM_API_REQUEST_TYPE_DEAL_GET_BY_CITY,
    ENUM_API_REQUEST_TYPE_DEAL_GET_CATEGORY,
    ENUM_API_REQUEST_TYPE_DEAL_GET_MY,
    ENUM_API_REQUEST_TYPE_DEAL_GET_CITY,
    ENUM_API_REQUEST_TYPE_DEAL_PASS,
    ENUM_API_REQUEST_TYPE_DEAL_GET_SETTING_INFO,
    ENUM_API_REQUEST_TYPE_DEAL_SET_PRIORITY_SETTING,
    ENUM_API_REQUEST_TYPE_DEAL_GET_CITY_BY_DISTANCE,
    ENUM_API_REQUEST_TYPE_DEAL_SET_CITY,
    ENUM_API_REQUEST_TYPE_DEAL_BUY_DEAL,
    ENUM_API_REQUEST_TYPE_DEAL_CANCEL_PASS,
    ENUM_API_REQUEST_TYPE_DEAL_APPROVE_PASS,
    ENUM_API_REQUEST_TYPE_DEAL_MAP_DIRECTION,
    ENUM_API_REQUEST_TYPE_DEAL_GET_CITY_SETTING,
    ENUM_API_REQUEST_TYPE_DEAL_GET_CITY_LIST_FIRST_TIME,
    ENUM_API_REQUEST_TYPE_DEAL_GET_CITY_LIST_FIRST_TIME_BY_DISTANCE,
    ENUM_API_REQUEST_TYPE_DEAL_GET_All_PAGE,
    
    // Rewards
    ENUM_API_REQUEST_TYPE_REWARDS_GET_All,
    ENUM_API_REQUEST_TYPE_REWARDS_GET_MAP,
    ENUM_API_REQUEST_TYPE_REWARDS_GET_MY,
    ENUM_API_REQUEST_TYPE_REWARDS_PURCHASED,
    ENUM_API_REQUEST_TYPE_REWARDS_SAVE_SETTINGS,
    
    //Points
    ENUM_API_REQUEST_TYPE_POINTS_GET_All,
    ENUM_API_REQUEST_TYPE_BADGES_GET_All,
    ENUM_API_REQUEST_TYPE_POINTS_EARNED_All,
    ENUM_API_REQUEST_TYPE_POINTS_SPENT_All,
    ENUM_API_REQUEST_TYPE_BADGES_All,
    ENUM_API_REQUEST_TYPE_BADGES_MY,
    
    // New Feed
    ENUM_API_REQUEST_TYPE_GET_KONNECT_FEEDS,
    ENUM_API_REQUEST_TYPE_GET_FEEDS_NOTIFICATION,
    ENUM_API_REQUEST_TYPE_GET_FEEDS_FILTER,
    ENUM_API_REQUEST_TYPE_GET_LASTEST_KONNECT_FEEDS,
    ENUM_API_REQUEST_TYPE_GET_OLDER_KONNECT_FEEDS,
    ENUM_API_REQUEST_TYPE_GET_FEEDS_COMMENTS,
    ENUM_API_REQUEST_TYPE_POST_FEEDS_COMMENTS,
    ENUM_API_REQUEST_TYPE_ADD_FEEDS,
    ENUM_API_REQUEST_TYPE_GET_FEEDS_PRIORITISE,
    ENUM_API_REQUEST_TYPE_GET_FEEDS_UN_PRIORITISE,
    ENUM_API_REQUEST_TYPE_GET_FEEDS_HIDE,
    ENUM_API_REQUEST_TYPE_GET_FEEDS_UN_HIDE,
    ENUM_API_REQUEST_TYPE_FEEDS_CHECK_UNREAD,
    ENUM_API_REQUEST_TYPE_GET_PRIORITIZE_FEEDS,
    ENUM_API_REQUEST_TYPE_ADD_FEEDS_STATUS,
    ENUM_API_REQUEST_TYPE_GET_MEDIA_DETAIL,
    ENUM_API_REQUEST_TYPE_GET_THOUGHT_DETAIL,
    ENUM_API_REQUEST_TYPE_GET_A_KARD,
    
    // PUSH NOTIFICATION
    ENUM_API_REQUEST_TYPE_NOTIFICATION_UPDATE_DEVICE_TOKEN,
    ENUM_API_REQUEST_TYPE_NOTIFICATION_GET_INFO,
    ENUM_API_REQUEST_TYPE_NOTIFICATION_UPDATE_INFO,
    
    // STORE
    ENUM_API_REQUEST_TYPE_STORE_GIFT_KARD_GETALL,
    ENUM_API_REQUEST_TYPE_STORE_GIFT_KARD_GETALL_GIFTANGO,
    ENUM_API_REQUEST_TYPE_STORE_GIFT_KARD_GETINFO,
    ENUM_API_REQUEST_TYPE_STORE_GIFT_KARD_SUBMITORDER,
    ENUM_API_REQUEST_TYPE_STORE_GIFT_KARD_SUBMIT_POINT_ORDER,
    ENUM_API_REQUEST_TYPE_STORE_GIFT_KARD_PROMO_GETALL,
    ENUM_API_REQUEST_TYPE_STORE_GIFT_KARD_GET_WHAT_HOT,
    ENUM_API_REQUEST_TYPE_STORE_GIFT_KARD_GET_CATEGORY_INFO,
    ENUM_API_REQUEST_TYPE_STORE_GIFT_KARD_SEARCH,
    
    // WALLET
    ENUM_API_REQUEST_TYPE_WALLET_GIFT_KARD_GETALL,
    ENUM_API_REQUEST_TYPE_WALLET_GET_GIFT_KARD_CREDIT_CARD,
    ENUM_API_REQUEST_TYPE_WALLET_GIFT_KARD_GIVE_TO_FRIEND,
    ENUM_API_REQUEST_TYPE_WALLET_ADD_CREDIT_CARD,
    ENUM_API_REQUEST_TYPE_WALLET_GET_CREDIT_CARD,
    ENUM_API_REQUEST_TYPE_WALLET_GET_CREDIT_CARD_TYPE,
    ENUM_API_REQUEST_TYPE_WALLET_SECURTY_GET_PIN,
    ENUM_API_REQUEST_TYPE_WALLET_SECURTY_UPDATE_PIN,
    ENUM_API_REQUEST_TYPE_WALLET_DELETE_CREDIT_CARD,
    
    // S3
    ENUM_API_REQUEST_TYPE_S3_UPLOAD_IMAGE,

    // LOCATION
    ENUM_API_REQUEST_TYPE_ADD_LOCATION,
    ENUM_API_REQUEST_TYPE_LIST_LOCATION,
    
    // FOURSQUARE
    ENUM_API_REQUEST_TYPE_FOURSQUARE_VENUES_SEARCH,
    ENUM_API_REQUEST_TYPE_FOURSQUARE_VENUES_SEARCH_TEXT,
    ENUM_API_REQUEST_TYPE_FOURSQUARE_VENUES_ADD,
    ENUM_API_REQUEST_TYPE_FOURSQUARE_VENUES_SUGGEST_COMPLETION,
    ENUM_API_REQUEST_TYPE_CITY_SEARCH_TEXT,

    ENUM_API_REQUEST_TYPE_CITY,
    ENUM_API_REQUEST_TYPE_CITY_LOCALEZE,
    ENUM_API_REQUEST_TYPE_CITY_GEONAMES,
    
    ENUM_API_REQUEST_TYPE_FOURSQUARE_VENUES_LOCATION,
    ENUM_API_REQUEST_TYPE_FOURSQUARE_VENUES_PHOTOS,
    ENUM_API_REQUEST_TYPE_FOURSQUARE_DEFAULT_IMAGES_ICON,
    
    // NUM
    ENUM_API_REQUEST_TYPE_FEEDS_CHECK_TOTAL_NUMBER,
    
    // TIPS
    ENUM_API_REQUEST_TYPE_SIDE_MENU_TIPS,
    ENUM_API_REQUEST_TYPE_SIDE_MENU_TUTORIAL,
    ENUM_API_REQUEST_TYPE_LOAD_TUTORIAL,
    
    // VIDEOS
    ENUM_API_REQUEST_TYPE_INTRO_VIDEO,
    
    // PASSBOOK
    ENUM_API_REQUEST_TYPE_CREATE_PASSBOOK,
    
    // FLICKR
    ENUM_API_REQUEST_TYPE_FLICKR_LOCATION_PHOTO,
    
    // GOOGLE
    ENUM_API_REQUEST_TYPE_GOOGLE_AUTO_COMPLETE,
    ENUM_API_REQUEST_TYPE_GOOGLE_PLACE_DETAIL

}ENUM_API_REQUEST_TYPE;

typedef enum 
{
    ENUM_APP_VIEW_CONTROLLER_BACKGROUND_STATE_INVALID,
    ENUM_APP_VIEW_CONTROLLER_BACKGROUND_STATE_BACKGROUND,
    ENUM_APP_VIEW_CONTROLLER_BACKGROUND_STATE_FOREGROUND
}ENUM_APP_VIEW_CONTROLLER_BACKGROUND_STATE;

typedef enum 
{
    ENUM_KARDS_VIEW_CONTROLLER_STEP_INVALID,
    ENUM_KARDS_VIEW_CONTROLLER_STEP_SHOW_TIP,
    ENUM_KARDS_VIEW_CONTROLLER_STEP_SHOW_TIP_WAITING,
    ENUM_KARDS_VIEW_CONTROLLER_STEP_CHECKING_FOR_TIP,
    ENUM_KARDS_VIEW_CONTROLLER_STEP_HIDE_AND_CHECK,
    ENUM_KARDS_VIEW_CONTROLLER_STEP_HIDE_FOR_A_TIME,
    ENUM_KARDS_VIEW_CONTROLLER_STEP_END
}ENUM_KARDS_VIEW_CONTROLLER_STEP;

typedef enum 
{
    ENUM_DECK_KARDS_VIEW_CONTROLLER_STEP_INVALID,
    ENUM_DECK_KARDS_VIEW_CONTROLLER_STEP_IN_SIMI_DELAY_VIEW,
    ENUM_DECK_KARDS_VIEW_CONTROLLER_STEP_IN_SIMI_DELAY_VIEW_WAITING,
    ENUM_DECK_KARDS_VIEW_CONTROLLER_STEP_IN_FORE_SHOWING,
    ENUM_DECK_KARDS_VIEW_CONTROLLER_STEP_END
}ENUM_DECK_KARDS_VIEW_CONTROLLER_STEP;

typedef enum
{
    ENUM_MEDIA_TYPE_VIDEO = 1,
    ENUM_MEDIA_TYPE_AUDIO,
    ENUM_MEDIA_TYPE_PHOTO
}ENUM_MEDIA_TYPE;

typedef enum {
    ENUM_KEYBOARD_STATUS_INVALID,
    ENUM_KEYBOARD_STATUS_FORCE_HIDE,
    ENUM_KEYBOARD_STATUS_RETURN,
    ENUM_KEYBOARD_STATUS_RETURN_AND_DID_BEGIN_EDITING,
    ENUM_KEYBOARD_STATUS_DID_END_EDITING,
    ENUM_KEYBOARD_STATUS_DID_BEGIN_EDITING
}ENUM_KEYBOARD_STATUS;

typedef enum
{
    ENUM_DEAL_LAST_STATUS_INVALID,
    ENUM_DEAL_LAST_STATUS_LOCATION,
    ENUM_DEAL_LAST_STATUS_USER_SELECT,
}ENUM_DEAL_LAST_STATUS;

typedef enum
{
    ENUM_CITY_TABLE_BY_NAME,
    ENUM_CITY_TABLE_BY_DISTANCE,
}ENUM_CITY_TABLE;

@protocol AppViewControllerProtocol <NSObject>
@optional
- (void)update;
- (void)updateOnlyForForeground;
@end

typedef enum {
    enumKardEditorActivatedView_Invalid,
    enumKardEditorActivatedView_Main_Title_TabBar,
    enumKardEditorActivatedView_Main_TabBar_Title,
    enumKardEditorActivatedView_TabBar_Main_Title,
    enumKardEditorActivatedView_TabBar_Title_Main,
    enumKardEditorActivatedView_Title_Main_TabBar,
    enumKardEditorActivatedView_Title_TabBar_Main
}enumKardEditorActivatedView;

typedef enum CellType{
    enumViewType_HomeGroup,
    enumViewType_HomeHeader,
    enumViewType_HomeFotter
}enumViewType;

typedef enum PhoneType{
    PhoneType_Invalid = -1,
    PhoneType_Cell = 1,
    PhoneType_Home = 5,
    PhoneType_Work = 10,
}enumPhoneType;

typedef enum ChooseViewType{
    enumChooseViewType_Invalid = -1,
    enumChooseViewType_Album,
    enumChooseViewType_MeKard,
}enumChooseViewType;

typedef enum PURCHASE_VIEW_TYPE {
    ENUM_PURCHASE_VIEW_TYPE_INVALID = -1,
    ENUM_PURCHASE_VIEW_TYPE_POINT,
    ENUM_PURCHASE_VIEW_TYPE_CURRENCY
}ENUM_PURCHASE_VIEW_TYPE;


typedef enum
{
    enumSignUpKardBuilderType_Invalid = 0,
    enumSignUpKardBuilderType_Social,
    enumSignUpKardBuilderType_Professinal
}enumSignUpKardBuilderType;

typedef enum {
    enumKonnectViewType_Invalid,
    enumKonnectViewType_Empty,
    enumKonnectViewType_Pending,
    enumKonnectViewType_Pending_Checking,
    enumKonnectViewType_Filter,
    enumKonnectViewType_Filter_All,
    enumKonnectViewType_Filter_Personal,
    enumKonnectViewType_Filter_Businesses,
    enumKonnectViewType_Filter_Places,
    enumKonnectViewType_Filter_Events,
    enumKonnectViewType_Filter_Custom,
    enumKonnectViewType_Search,
    enumKonnectViewType_Search_Checking
}enumKonnectViewType;


typedef enum {
    enumStoreGiftKardFilterType_Invalid = -1,
    enumStoreGiftKardFilterType_All = 0,
    enumStoreGiftKardFilterType_WhatHot,
    enumStoreGiftKardFilterType_Food,
    enumStoreGiftKardFilterType_NightLife,
    enumStoreGiftKardFilterType_Entertainment,
    enumStoreGiftKardFilterType_Coffee,
    enumStoreGiftKardFilterType_Appreal
}enumStoreGiftKardFilterType;

typedef enum {
    enumStoreGiftKardFilterTypeReqAPI_Invalid = -2,
    enumStoreGiftKardFilterTypeReqAPI_All = -1,
    enumStoreGiftKardFilterTypeReqAPI_WhatHot = 0,
    enumStoreGiftKardFilterTypeReqAPI_Food = 6,
    enumStoreGiftKardFilterTypeReqAPI_NightLife = 22,
    enumStoreGiftKardFilterTypeReqAPI_Entertainment = 5,
    enumStoreGiftKardFilterTypeReqAPI_Coffee = 21,
    enumStoreGiftKardFilterTypeReqAPI_Appreal = 1,
}enumStoreGiftKardFilterTypeReqAPI;

typedef enum {
    enumAddLocationType_Invalid = -1,
    enumAddLocationType_Localese,
    enumAddLocationType_City,
    enumAddLocationType_CitySetNew
}enumAddLocationType;

typedef enum {
    enumFeedViewType_Invalid = -1,
    enumFeedViewType_Activity,
    enumFeedViewType_Notification,
} enumFeedViewType;

typedef enum  {
    venue_kind_food,
    venue_kind_night_life,
    venue_kind_entertainment,
    venue_kind_coffee,
    venue_kind_shopping,
    venue_kind_all = 100
}venue_kind;

typedef enum
{
    enumAutoTradeLevelOFF = 0,
    enumAutoTradeLevelON
}enumAutoTradeLevel;

typedef enum
{
    enumShowLocationLevelCity = 0,
    enumShowLocationLevelOff,
    enumShowLocationLevelMiles
}enumShowLocationLevel;

typedef enum
{
    enumContactTypePhone = 1,
    enumContactTypeAddress,
    enumContactTypeEmail,
    enumContactTypeWebsite
} enumContactType;

@protocol KardEditorProtocol <NSObject>
@optional
- (void)didSelectTemplateWithData:(NSObject *)data;
- (void)didSelectImageWithData:(NSObject *)data;
- (void)didSelectGraphicWithData:(NSObject *)data;
- (void)didSelectAndChangeTextView;
- (void)didSelectSaveWithName:(NSString *)name andSaveAsTemplate:(BOOL)isTemplate;
- (void)didSelectSaveAlbumWithInfo:(NSDictionary *)album;
- (void)didSelectProfile;

- (void)didSelectPickerWithSourceType:(UIImagePickerControllerSourceType)type;
- (void)didSelectImageFromInstagram:(UIImage*)selectedImage;

- (void)activateViewStack:(enumKardEditorActivatedView)act;
@end